﻿
Option Strict On : Option Explicit On : Option Compare Binary : Option Infer On

Imports System
Imports System.Collections.ObjectModel
Imports System.Text.RegularExpressions

Namespace Code.Coloriser

    ''' <summary>
    ''' Default code coloriser for C++
    ''' </summary>
    ''' <remarks></remarks>
    Friend Class CppCodeColoriser
        Inherits CCodeColoriser

        'Sub New()
        '    'Me.Keywords = New String() {"__asm", "__automated", "__cdecl", "__classid", "__closure", _
        '    '                            "__declspec", "__dispid", "__except", "__export", "__fastcall", _
        '    '                            "__finally", "__import", "__int16", "__int32", "__int64", "__int8", _
        '    '                            "__pascal", "__property", "__published", "__rtti", "__stdcall", _
        '    '                            "__thread", "__try", "_asm", "_cdecl", "_export", "_fastcall", _
        '    '                            "_import", "_pascal", "stdcall", "asm", "auto", "bool", "break", _
        '    '                            "case", "catch", "cdecl", "char", "class", "const", "const_cast", _
        '    '                            "continue", "default", "delete", "do", "double", "dynamic_cast", _
        '    '                            "else", "enum", "explicit", "extern", "false", "float", "for", _
        '    '                            "friend", "goto", "if", "inline", "int", "long", "mutable", _
        '    '                            "namespace", "new", "operator", "pascal", "private", "protected", _
        '    '                            "public", "register", "reinterpret_cast", "return", "short", "signed", _
        '    '                            "sizeof", "static", "static_cast", "struct", "switch", "template", _
        '    '                            "this", "throw", "true", "try", "typedef", "typeid", "typename", _
        '    '                            "union", "unsigned", "using", "virtual", "void", "volatile", _
        '    '                            "wchar_t", "while"}
        '    'Me.m_stringOrCharRegexStr = "("".*?"")|('.*?')"
        '    'Me.m_commentRegexStr = "//.*|/\*.*?\*/"
        'End Sub


        Protected Overrides ReadOnly Property Keywords() As String
            Get
                Return "__asm __automated __cdecl __classid __closure " _
                & "__declspec __dispid __except __export __fastcall " _
                & "__finally __import __int16 __int32 __int64 __int8 " _
                & "__pascal __property __published __rtti __stdcall " _
                & "__thread __try _asm _cdecl _export _fastcall " _
                & "_import _pascal stdcall asm auto bool break " _
                & "case catch cdecl char class const const_cast " _
                & "continue default delete do double dynamic_cast " _
                & "else enum explicit extern false float for " _
                & "friend goto if inline int long mutable " _
                & "namespace new operator pascal private protected " _
                & "public register reinterpret_cast return short signed " _
                & "& static static_cast struct switch template " _
                & "this throw true try typedef typeid typename " _
                & "union unsigned using virtual void volatile " _
                & "wchar_t while"
            End Get
        End Property

    End Class

End Namespace